package org.japo.java.swing.igu;

import java.awt.Font;
import java.awt.HeadlessException;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import org.japo.java.basics.entities.Nif;
import org.japo.java.swing.listeners.GEA;

public class IGU extends JFrame {

    //Declarar campos necesarios
    private JTextField txfDni;
    private JLabel lblLetra;
    private JLabel lblGuion;

    private final String FONT_EST = "Consolas";
    private final int FONT_TAM = 40;

    //Instanciar el panel principal
    JPanel pnlPrincipal = new JPanel();

    public IGU() throws HeadlessException {
        iniciarComponentes();
    }

    private void iniciarComponentes() {
        GEA gea = new GEA(this);
        //Definir variables
        //Fuente
        Font f = new Font(FONT_EST, Font.BOLD, FONT_TAM);

        

        //Definir etiqueta nif
        txfDni = new JTextField();
        txfDni.setText("99999999");
        txfDni.setColumns(8);
        txfDni.setFont(f);
        txfDni.setHorizontalAlignment(JTextField.RIGHT);
        pnlPrincipal.add(txfDni);
        txfDni.addActionListener(gea);

        //Definir guión
        lblGuion = new JLabel();
        lblGuion.setText("-");
        lblGuion.setFont(f);
        lblGuion.setHorizontalAlignment(JLabel.CENTER);
        pnlPrincipal.add(lblGuion);

        //Definir letra
        lblLetra = new JLabel();
        lblLetra.setText("*");
        lblLetra.setFont(f);
        lblLetra.setHorizontalAlignment(JLabel.CENTER);
        pnlPrincipal.add(lblLetra);
        
        //Definir Ventana
        setContentPane(pnlPrincipal);
//        setSize(260, 90);
       
        setLocationRelativeTo(null);
        setTitle("Calcular NIF 2ª parte");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//Esto dice que cuando pulses ls X la ventana se cierre
        setResizable(false);
         pack();

    }

    public void calcularNif() {
        int dni;
        char letra;

        try {
            dni = Integer.parseInt(txfDni.getText());
            letra = Nif.calcularLetraNif(dni);

            lblLetra.setText(letra + "");

        } catch (Exception e) {
            lblLetra.setText("*");

        }

    }
}
